﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using UricaoWeb.Datos.ConexionBD.Reservas;

namespace UricaoWeb.LogicaDeNegocios.Reservas
{
    public class LogicaReservas
    {
        private DatosReservas _modelo = new DatosReservas();

        public LogicaReservas()
        { }

        /// <summary>
        /// Consulta de todos los tours 
        /// </summary>
        /// <returns></returns>
        public List<Tour> ConsultarTours()
        {
            List<Tour> _listaTours = new List<Tour>();
            _listaTours = _modelo.ConsultarTours();

            return _listaTours;
        }


        /// <summary>
        /// Consulta de todos los tours 
        /// </summary>
        /// <returns></returns>
        public List<Tour> ConsultarTour(int _idTour)
        {
            List<Tour> _listaTour = new List<Tour>();
            _listaTour = _modelo.ConsultarTour(_idTour);


            return _listaTour;
        }

        /// <summary>
        /// Consulta de todos los horarios de tours 
        /// </summary>
        /// <returns></returns>
        public List<HorarioTour> ConsultarHorarioTour(int _idTour)
        {
            List<HorarioTour> _listaHorarioTour = new List<HorarioTour>();
            _listaHorarioTour = _modelo.ConsultarHorarioTour(_idTour);

            return _listaHorarioTour;
        }

        /// <summary>
        /// Consulta de toda la informacion del cliente 
        /// </summary>
        /// <returns></returns>
        public List<String> ConsultarClienteReserva(int _idCodigoReserva, int _idHotel)
        {
            List<String> _listaInfoCliente = new List<String>();
            _listaInfoCliente = _modelo.ConsultarClienteReserva(_idCodigoReserva, _idHotel);

            return _listaInfoCliente;
        }

        /// <summary>
        /// Consulta de todos los restaurantes
        /// </summary>
        /// <returns></returns>
        public List<Restaurante> ConsultarRestaurantes()
        {
            List<Restaurante> _listaRestaurantes = new List<Restaurante>();
            _listaRestaurantes = _modelo.ConsultarRestaurantes();

            return _listaRestaurantes;
        }

        /// <summary>
        /// Consulta de todos los platos
        /// </summary>
        /// <returns></returns>
        public List<Plato> ConsultarPlatos()
        {
            List<Plato> _listaPlatos = new List<Plato>();
            _listaPlatos = _modelo.ConsultarPlatos();


            return _listaPlatos;
        }

        /// <summary>
        /// Consulta de todos los platos de una reservacion
        /// </summary>
        /// <returns></returns>
        public List<Plato> ConsultarPlatosReservacion(int _codigoReservacion)
        {
            List<Plato> _listaPlatos = new List<Plato>();
            _listaPlatos = _modelo.ConsultarPlatosReservacion(_codigoReservacion);


            return _listaPlatos;
        }

        /// <summary>
        /// Consulta de todas las reservas 
        /// de habiaciones
        /// </summary>
        /// <returns></returns>
        public string ConsultarReservaHabitacion(int _codigoReservacion)
        {
            string _habitacion = null;
            _habitacion = _modelo.ConsultarReservaHabitacion(_codigoReservacion);


            return _habitacion;
        }

        /// <summary>
        /// Consulta de todas las reservas 
        /// de mesas
        /// </summary>
        /// <returns></returns>
        public string ConsultarReservaRestaurante(int _codigoReservacion)
        {
            string _restaurante = null;
            _restaurante = _modelo.ConsultarReservaRestaurante(_codigoReservacion);


            return _restaurante;
        }

        /// <summary>
        /// Consulta de todas las reservas 
        /// de tour
        /// </summary>
        /// <returns></returns>
        public string ConsultarReservaTour(int _codigoReservacion)
        {
            string _tour = null;
            _tour = _modelo.ConsultarReservaTour(_codigoReservacion);


            return _tour;
        }

        /// <summary>
        /// Consulta de Room Service
        /// </summary>
        /// <returns></returns>
        public string ConsultarReservaRoomService(int _codigoReservacion)
        {
            string _roomService = null;
            _roomService = _modelo.ConsultarReservaRoomService(_codigoReservacion);


            return _roomService;
        }

        /// <summary>
        /// Consulta de Room Service
        /// </summary>
        /// <returns></returns>
        public string ConsultarInformacionCliente(int _codigoReservacion)
        {
            string _cliente = null;
            _cliente = _modelo.ConsultarInformacionCliente(_codigoReservacion);


            return _cliente;
        }

        /// <summary>
        /// Crear una reserva de tour
        /// </summary>
        /// <returns></returns>
        public bool ReservarTour(string _idCodigoReservacion, string _idTour, string _personasReserva)
        {
            bool _insertar = _modelo.ReservarTour(
                Int32.Parse(_idCodigoReservacion),
                Int32.Parse(_idTour),
                Int32.Parse(_personasReserva)
                );

            return _insertar;
        }

        /// <summary>
        /// Crear una reserva de mesa
        /// </summary>
        /// <returns></returns>
        public bool ReservarMesa(string _idCodigoReservacion, string _idRestaurante, string _personasReserva, string fecha)
        {
            bool _insertar = _modelo.ReservarMesa(
                Int32.Parse(_idCodigoReservacion),
                Int32.Parse(_idRestaurante),
                Int32.Parse(_personasReserva),
                fecha
                );

            return _insertar;
        }


        /// <summary>
        /// Crear una reserva de Room Service
        /// </summary>
        /// <returns></returns>
        public bool ReservarRoomService(int _CodigoReservacion, int _fkPlato)
        {

            bool _insertar = _modelo.ReservarRoomService(
                _CodigoReservacion,
                _fkPlato
                );

            return _insertar;
        }

        /// <summary>
        /// Crear una reserva de habitacion
        /// </summary>
        /// <returns></returns>
        public bool ReservarHabitacion(string _tipoHabitacion, int _adulto, int _nino, string _fechaInicio, string _fechaFin)
        {

            bool _insertar = _modelo.ReservarHabitacion(
                _tipoHabitacion,
                _adulto,
                _nino,
                _fechaInicio,
                _fechaFin
                );

            return _insertar;
        }

        /// <summary>
        /// Crear un cliente
        /// </summary>
        /// <returns></returns>
        public bool InsertarCliente(string _nombre, string _apellido, string _documento, string _tipoDoc, string _tipoPago, string _correo)
        {

            bool _insertar = _modelo.InsertarCliente(_nombre, _apellido, _tipoDoc, _documento, _tipoPago, _correo);

            return _insertar;
        }

        /// <summary>
        /// Codigo del cliente
        /// </summary>
        /// <returns></returns>
        public string MaxCodigoReservacion()
        {

            string _codigo = _modelo.MaxCodigoReservacion();

            return _codigo;
        }

        /// <summary>
        /// Crear una reserva de habitacion dado el codigo de reservacion
        /// </summary>
        /// <returns></returns>
        public bool ReservarHabAdicional(int _codigoReservacion, string _tipoHabitacion, int _adulto, int _nino)
        {

            bool _insertar = _modelo.ReservarHabAdicional(
                _codigoReservacion,
                _tipoHabitacion,
                _adulto,
                _nino
                );

            return _insertar;
        }


    }
}